Define the product
- ABI Insights Copilot, in-house Gen AI-based desktop product designed to provide contextual insights through natural language queries. This tool efficiently extracts information from both structured and unstructured data sources across multiple domains. In simple terms, it's ChatGPT on enterprise data
- Login (SSO based)
- Homepage/ Landing Page
- Discover Insights
- Know Your Data
- FAQs
- QnA Page
- Conversational History
- Charts
- View Source
- For this assignment, I will only be focussing on the following since they are the most critical features:
- Discover Insights
- QnA Page
- Conversational History
- Charts
β
β
How is value delivered to the user?
- User is able to access insights from structured & unstructured data sources in simple English within seconds which otherwise manually takes days, if not weeks.
β
What data is being captured?:
- Conversational History of the conversations for usage statistics and improving the recommended answers over time
- Source data from which insights need to be extracted are uploaded in the backend
β
What additional capabilities the product needs to have?
- Visualize the insights in terms of charts for better user experience
β
Decode the tech layer
- Login
- Homepage/ Landing Page

- Discover Insights:
β- Discover Insights is a feature that enables users to read through insightful articles that are pre-curated by the ML team by extracting insights based on data that is already ingested. The refresh is supposed to be manual and just once in 2 weeks.
- Where do the inputs come from?
- ML Team
- No inputs from user needed
- Is there data to be accessed, stored or processed?
- The article title, content and images need to be stored
- Is the logic static or dynamic?
- There is no logic. It's just a static piece of content fetched from backend that is being surfaced to the users when clicked
- FrontEnd (Desktop)
- BackEnd
- PostGres DB to store the "Discover Insights" module - Article Title, Content, Images, Date refreshed, Date posted.
- CDN
- Azure CDN since the entire tech stack is hosted in Azure
- Team Needed
- 1 Front End Engineer
- 1 BackEnd Engineer
- Time Estimate
- Nuances & Tradeoffs
- Compatibility with current tech stack
- Level of security needed
- Low level of security is okay
- Re-validate the logic on client side to server side
- 3rd party integrations
- Can be explored when we want the insights to also come from external news articles
- Can be integrated with Amplitude
- Can be explored to make the insights Multi-lingual based on country user is logging in from
- Browser Compatibility
- Optimizing for mobile webpage
- QnA Page
β- QnA feature allows the users to ask questions in natural language regarding their business domains and extracts insights based on internal data by converting the user question into a SQL query using LLMs, executing it using LLMs and then visualizing the responses in form of charts
- Minimum set of components for this feature:
- User should be able to ask a question
- User should be able to get a textual response
- User should be able to get a visual response (wherever needed)
- User should be able to share feedback per question
- User should be able to raise a help tickets
- User should be able to look at conversational history for future reference
- Frontend
- This is needed for all the following sub-features:
- Ask a question box
- Get a response in a container after the answer
- Get charts in responses
- Charting libraries liks chartjs & amcharts can be explored here
- Get a thumbs up/ down feedback button for the user to share feedback
- Have a help center icon where the user can reach out to get help/ log tickets
- We will be using Reactive Native framework for frontend design & code in Javascript
- Backend
- This is needed for the following reasons:
- Store each session of the users as soon as they start a session
- Store the conversational history for future reference
- Build a caching database of FAQs for lower latency & better user experience
- Store the user feedback data for future analytics leveraged by the ML team to improve responses
- Store information raising tickets being raised
- Big Data
- The response to the user query needs to be fetched from ingested internal data
- There are typically MS SQL tables within ABI for structured datasets & blob storage for unstructured datasets like PDFs, PPTs, Word, etc.
- Internal API connecting FrontEnd and BackEnd will be needed. No external APIs needed as of now
- Team Needed
- FrontEnd Engineer
- BackEnd Engineer
- ML Engineer
- Data Engineer
- Time Estimate
Detail Nuances & TradeOffs
- Breakdown of time estimate:
- Building ML Logic to convert natural language question to SQL using RAG - 6 weeks
- Building frontend to ask & continue conversations along with ability to surf through older conversations through conversational history - 4 weeks
- Building frontend to visualize responses as charts - 6 weeks
- Building a caching mechanism for faster retrieval - 1 week
- Building feedback module to capture user feedback - 1 week
- Building data engineering pipelines to get all the data in the desired format - 2 weeks
- Building ticket & resolution module - 6 weeks
The 3 most time taking tasks are:
- Building frontend to visualize responses as charts - 6 weeks
- Can be outsourced if we find a tool that meets all specifications
- Building ticket & resolution module - 6 weeks
- Can be outsourced if we find a tool that meets all specifications
- Building ML Logic to convert natural language question to SQL using RAG - 6 weeks
- This cannot be outsourced since this is a strategic moat for the company wherein we train the LLMs to take specific user personas within ABI
- How we can leveraged & build on top of some opensource advanced RAG solutions with dynamic prompts being custom engineered for ABI user personas - This will reduce time from 6 weeks to 3 weeks.
- Why build inhouse?
- Do external solutions meet all my requirements?
- Let's evaluate the specifications for charts feature first
- User should be able to visualize charts along with textual answers
- User should be able to visualize different varieties of charts based on the SQL query generated and the answer being passed
- User should be able to toggle amongst different chart types based on their preferences
- Our tech team should have access to charts databases detailing charts being plotted
- I found an external product called TakoViz that does this call. I am actually going to implement this for our product!
- We also found that some other enterprise search products like perplexity are also already partnering with them
- https://braintitan.medium.com/perplexity-partners-with-takoviz-for-advanced-knowledge-search-and-visualizations-46be2bb33451
- So, The 6 week timeline should go down to 2 weeks (just for integration)
- How long can this solution be used?
- Switch to other 3rd party
- It's an API based integration. So, should be possible with only the integration effort of 2 weeks going to waste
- Switch to in-house
- I dont think this is really needed to be explored since we want to focus on the QnA piece & its accuracy. Charts is just an enabler which can be outsourced
- What would we lose in terms of user experience, effort & data?
- Negotiate & get alignments with TakoViz to get their data stored & leveraged in future
- The cost to migrate
- 2 more weeks of integration effort with new 3rd party solution & initial loss of 2 weeks of development
- Do you need any API integrations?
- Is the 3rd party solution scalable to future use cases?
- Yes, They have a much larger portfolio of charts that on our product roadmap which will help us scale to more use cases.
- Let's evaluate the specifications for ticket resolution feature next
- User should be able to raise tickets
- User should be able to access older tickets
- I found an external product called Freshdesk that does this.
- So, The 6 week timeline should go down to 2 weeks (just for integration)
Overall Timeline can hence shrink from 26 weeks to 15 weeks now!
β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
β
β